/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO.MySQL;

import ClassesUnicas.SubFase;
import DAO.DAOInstanciaJogo;
import DAO.DAOSubFase;
import InstanciaJogo.InstanciaJogoSwing;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author Igor
 */
public class DAOSubFaseMySQL extends DAOConexaoMySQL implements DAOSubFase {

    @Override
    public String sqlPesquisaPadrao(String sqlInterno) {
        return "select\n"
                + "a.ID_FASE,\n"
                + "a.ID_SUB_FASE,\n"
                + "a.INTENSIDADE \n"
                + "from sub_fase a\n"
                +sqlInterno
                + "\norder by a.ID_FASE, a.ID_SUB_FASE ";
    }
    
    @Override
    public ArrayList<SubFase> buscaSubFases() throws Exception {
        ResultSet result = null;
        ArrayList<SubFase> subFases = new ArrayList<SubFase>();

        result = this.select.executeQuery(sqlPesquisaPadrao(""));

        while (result.next()) {
            SubFase subFase = new SubFase();

            subFase.setIdFase(result.getInt("ID_FASE"));
            subFase.setIdSubFase(result.getInt("ID_SUB_FASE"));
            subFase.setIntensidade(result.getInt("INTENSIDADE"));

            subFases.add(subFase);
        }

        return subFases;
    }

    @Override
    public ArrayList<SubFase> buscaSubFases(String idFase, String idSubFase) throws Exception {
        ResultSet result = null;
        ArrayList<SubFase> subFases = new ArrayList<SubFase>();

        String sqlWhere = "";
        //Cria clausula where
        if (idFase != null) {
            if (sqlWhere.isEmpty()) {
                sqlWhere = "where ";
            } else {
                sqlWhere = sqlWhere + " and ";
            }
            sqlWhere = sqlWhere + " a.ID_FASE = " + idFase;
        }
        
        if (idSubFase != null) {
            if (sqlWhere.isEmpty()) {
                sqlWhere = "where ";
            } else {
                sqlWhere = sqlWhere + " and ";
            }
            sqlWhere = sqlWhere + " a.ID_SUB_FASE = " + idSubFase;
        }
        
        result = this.select.executeQuery(sqlPesquisaPadrao(sqlWhere));

        while (result.next()) {
            SubFase subFase = new SubFase();

            subFase.setIdFase(result.getInt("ID_FASE"));
            subFase.setIdSubFase(result.getInt("ID_SUB_FASE"));
            subFase.setIntensidade(result.getInt("INTENSIDADE"));

            subFases.add(subFase);
        }

        return subFases;
    }

}
